package com.gitee.sop.layui.adminserver.module.background.develop.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gitee.sop.layui.adminserver.module.background.develop.entity.SysFunctionRole;
import com.gitee.sop.layui.adminserver.module.base.bo.ZTreeNode;

import java.util.List;

/**
 * com.zch.admin.base.entity.SysAdminFunctionRole模型业务接口
 *
 * @author: admin
 * @date: 2019-11-27
 * @version: 1.0.0
 */
public interface SysFunctionRoleService extends IService<SysFunctionRole> {

    /**
     * 添加功能角色
     *
     * @param sysFunctionRole 角色信息
     */
    void add(SysFunctionRole sysFunctionRole);

    /**
     * 删除指定角色
     *
     * @param id 角色id
     */
    void deleteSelfAndChildrenById(Integer id);

    /**
     * 查询指定code列表的所有父角色
     *
     * @param codeList 编码列表
     * @return
     */
    List<SysFunctionRole> getAllParentByCode(List<String> codeList);

    /**
     * 获取指定用户的所有的角色信息
     *
     * @param userUuid 用户uuid
     * @return
     */
    List<String> getFunctionRoleNameListByUserUuid(String userUuid);

    /**
     * 查询用户的功能角色树
     *
     * @param userUuid 用户的uuid
     * @return
     */
    List<ZTreeNode> searchTreeByUserUuid(String userUuid);

    /**
     * 获取指定用户的所有功能角色
     *
     * @param userUuid 用户uudi
     * @return
     */
    List<SysFunctionRole> getAllByUserUuid(String userUuid);
}